package com.sbr.seb.rule.composite;

import java.util.Collection;

import com.sbr.seb.rule.Specification;


public abstract class AbstractCompositeSpecification<T> implements Specification<T> {

	protected Collection<Specification<T>> specifications;
	
	public Specification<T> and(Specification<T>... specifications) {
		return new AndSpecification<T>(specifications);
	}

	public Specification<T> not() {
		//TODO implémenter cette spécification
		throw new UnsupportedOperationException();
	}

	public Specification<T> or(Specification<T>... specifications) {
		return new OrSpecification<T>(specifications);
	}

}
